package com.fowo.api.model.product.spu;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.fowo.api.common.excel.ImageConvert;
import com.fowo.api.sys.entity.SysFile;
import java.util.List;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** SPU管理 导入导出辅助模型 */
@Getter
@Setter
public class ProductSpuExcelPo {

  @ExcelProperty(value = "图片", converter = ImageConvert.class)
  private List<SysFile> picUrl;

  @Size(max = 500, message = "款名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "款名")
  private String spuName;

  @Size(max = 50, message = "SPU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "SPU")
  private String spu;

  @Size(max = 500, message = "品名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "品名")
  private String name;

  @Size(max = 50, message = "SKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "SKU")
  private String sku;

  @Size(max = 50, message = "型号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "型号")
  private String model;

  @Size(max = 50, message = "单位长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "单位")
  private String unit;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "属性")
  private String attributeValue;

  @ExcelIgnore
  @ExcelProperty(value = "属性")
  private Long attribute;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "分类")
  private String classifyName;

  @ExcelIgnore
  @ExcelProperty(value = "分类")
  private Long classify;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "品牌")
  private String brandName;

  @ExcelIgnore
  @ExcelProperty(value = "品牌")
  private Long brand;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "开发人")
  private String developerName;

  @ExcelIgnore
  @ExcelProperty(value = "开发人")
  private Long developer;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "产品负责人")
  private String principalName;

  @ExcelIgnore
  @ExcelProperty(value = "产品负责人")
  private Long principal;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "采购员")
  private String buyerName;

  @ExcelIgnore
  @ExcelProperty(value = "采购员")
  private Long buyer;

  @ExcelProperty(value = "采购交期")
  private Integer purchasingDeliveryTime;

  @ExcelProperty(value = "采购成本")
  private java.math.BigDecimal procurementCost;

  @ExcelProperty(value = "单箱数量")
  private Integer packingNum;

  @ExcelProperty(value = "外箱长度")
  private java.math.BigDecimal boxLength;

  @ExcelProperty(value = "外箱宽度")
  private java.math.BigDecimal boxWidth;

  @ExcelProperty(value = "外箱高度")
  private java.math.BigDecimal boxHeight;

  @ExcelProperty(value = "单箱重量")
  private java.math.BigDecimal packingWeight;

  @ExcelProperty(value = "包装长度")
  private java.math.BigDecimal packageLength;

  @ExcelProperty(value = "包装宽度")
  private java.math.BigDecimal packageWidth;

  @ExcelProperty(value = "包装高度")
  private java.math.BigDecimal packageHeight;

  @ExcelProperty(value = "产品毛重")
  private java.math.BigDecimal productGross;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "关联辅料数")
  private String accessoriesNum;

  @Size(max = 20, message = "状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "状态")
  private String salesStatus;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "1688配对状态")
  private String isMatchedAlibaba;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "listing配对状态")
  private String isMatchedListing;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "分组")
  private String groupName;

  @ExcelIgnore
  @ExcelProperty(value = "分组")
  private Long group;

  @Size(max = 50, message = "产品标签长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "产品标签")
  private String label;

  @Size(max = 50, message = "信息一长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "信息一")
  private String info1;

  @Size(max = 50, message = "信息二长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "信息二")
  private String info2;

  @Size(max = 50, message = "电镀颜色长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "电镀颜色")
  private String epColor;
}
